[CLUSTERPRO]AWS上でCLUSTERPRO Dをセットアップしてみた。
こんにちは、涼しくなってきたので少し動きがよくなってきた城内です。
前回に引き続き、今回もCLUSTERPRO Dを触っていきたいと思います。
今回はAWSを絡めて、AWS上のLinuxサーバで、CLUSTERPRO Dのインストールから簡単なセットアップまでを行っていきたいと思います。
はじめに
まずは、いままでの記事の紹介です。
また、前回も書きましたが、インストーラは以下のサイトからダウンロードできます。
マニュアルもダウンロードページから取得できますので、一緒にダウンロードし、参照しながら作業を進めましょう。
インストール
では、さっそく製品のインストールから始めていきます。
EC2作成
EC2インスタンスを作成する際のポイントは以下になります。
- OSは「Red Hat Enterprise Linux 7.2」を選択しています
- インスタンスタイプは、システム要件的に「t2.small」以上にしています
- Advanced WebConsoleへアクセスするために、セキュリティグループで自端末からの20000ポートを開放しています
インスタンスの作成が終わったら、SSHでログインします。
SELinuxの無効化
まずは、SELinuxを無効化します。
# getenforce Enforcing # setenforce 0 # getenforce Permissive # # cp -p /etc/selinux/config /etc/selinux/config.org # vi /etc/selinux/config ... # disabled - No SELinux policy is loaded. #SELINUX=enforcing SELINUX=disabled # SELINUXTYPE= can take one of three two values: ...
CLUSTERPROのインストール
次に、CLUSTERPROのインストーラをEC2にアップロードし、ZIPを解凍します。
インストールは、setup.shスクリプトを実行するだけです。
# ll total 111084 -rw-rw-r--. 1 ec2-user ec2-user 113749686 Sep 7 05:22 d10l_x64.zip # yum install -y unzip Loaded plugins: amazon-id, rhui-lb, search-disabled-repos Resolving Dependencies --> Running transaction check ---> Package unzip.x86_64 0:6.0-15.el7 will be installed --> Finished Dependency Resolution ... # unzip d10l_x64.zip Archive: d10l_x64.zip creating: d10l_x64/ inflating: d10l_x64/readme.pdf creating: d10l_x64/rpm/ inflating: d10l_x64/rpm/clznode-1.0.5-1.20340.el6.x86_64.rpm inflating: d10l_x64/rpm/clznode-1.0.5-1.20340.el7.x86_64.rpm inflating: d10l_x64/setup.sh # ll total 111088 drwxr-xr-x. 3 root root 48 Apr 5 19:43 d10l_x64 -rw-rw-r--. 1 ec2-user ec2-user 113749686 Sep 7 05:22 d10l_x64.zip # cd d10l_x64 # ll total 236 -rw-r--r--. 1 root root 233046 Jan 15 2016 readme.pdf drwxr-xr-x. 2 root root 92 Apr 5 19:41 rpm -rw-r--r--. 1 root root 4829 Apr 5 09:05 setup.sh # chmod u+x setup.sh # ./setup.sh << start clznode installation >> [ check dependencies ] -> SELinux mode: WARNING(Permissive) [ install packages ] -> clznode: OK [ installation result ] => clznode installation is complete!
これでインストールは完了です。
サービスの起動
最後に、CLUSTERPROのサービスを起動してみましょう。
# systemctl start clznode.service # systemctl status clznode.service ● clznode.service - CLUSTERPRO D 1.0 for Linux Loaded: loaded (/usr/lib/systemd/system/clznode.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2016-09-07 05:43:05 EDT; 11s ago Main PID: 16437 (clznode) ...
ここまで問題なく実施できたら、クラスタを組むために同じものをもう1台作成してください。
セットアップ
簡単なセットアップとして、クラスタの構築からAWS特有の「AWSドメインネームリソース」の設定までを行いたいと思います。
クラスタの構築
CLUSTERPROの操作を行うために、Advanced WebConsoleにアクセスします。
Top画面から「クラスターを構築する」を選択し、画面に従って必要項目を入力していきます。
クラスタ名を入力します。
先に作成したEC2インスタンスを追加します。
ライセンスを登録します。
ハートビート用のIPアドレスを入力します。
設定情報の確認画面で、「完了」ボタンをクリックします。
設定に問題がなければ、設定反映のメッセージが表示され、クラスタが作成されます。
AWSドメインネームリソースの設定
AWSドメインネームリソースは、Top画面の「リソースグループを作成する」から設定していきます。
「リソースを追加」から「AWSドメインネームリソース」をクリックします。
特に設定項目はなく、リソースグループ名を入力して完了です。
あとは、仮想ホスト名とそれに紐づくIPアドレスですが、これらはクラスタ内の各サーバ上にJSONファイルとして情報を保存しておきます。
(リソースグループが起動した際に、そのJSONファイルを読み込んで、Route 53にレコード登録するような挙動のようです)
cl-create-aws-route53-record-sets.shスクリプトを実行し、cluawsdn.jsonファイルを作成します。
# /opt/clznode/utility/cl-create-aws-route53-record-sets.sh clserver.clp-sample.local 172.31.xx.xx # cat /opt/clznode/etc/cluawsdn.json {"Comment": "Modifying A record", "Changes": [{"ResourceRecordSet": {"Name": "clserver.clp-sample.local", "TTL": 30, "Type": "A", "ResourceRecords": [{"Value": "172.31.xx.xx"}]}, "Action": "UPSERT"}]}
また、AWS CLIやRoute 53の環境情報も設定しておく必要があります。
(CLI実行のために、APIキーを発行し、aws configureにてキー情報を登録しておいてください)
cl-setup-aws-environment.shスクリプトを実行し、各種環境情報を設定します。
# /opt/clznode/utility/cl-setup-aws-environment.sh aws_config_file [None]: /root/.aws/config aws_credential_file [None]: /root/.aws/credentials route53_hosted_zone_id [None]: ZXXXXXXXXXXXXX # cat /opt/clznode/etc/cluaws.conf [cluaws] aws_config_file = /root/.aws/config aws_credential_file = /root/.aws/credentials route53_hosted_zone_id = ZXXXXXXXXXXXXX
詳細は『Amazon Web Services向けHAクラスター構築ガイド』の第3章に記載されていますので、そちらを参考にしてください。
以上で仮想ホスト名を持ったクラスタサーバの完成です。
さいごに
CLUSTERPROのセットアップは、GUIベースで本当に簡単です。
AWSドメインネームリソースについては、AWS特有の機能のため、少し仕組みの理解が必要でしたが、分かってしまえばそれほど複雑ではないと思います。
次は、クラスタ上で何かのサービスを稼働させてみたいと思います。
ではまたー。